package com.zjl.redis.第05章_redis的多环境部署;

import io.lettuce.core.cluster.SlotHash;
import io.lettuce.core.codec.CRC16;

import java.nio.ByteBuffer;

/**
 * Redis-Cluster集群
 *
 * ●Redis集群是一个提供在多个Redis节点间共享数据的程序集
 * ●Redis集群可以支持多个Master
 * ●Redis集群实现了对Redis的 ****水平扩容**** ,即启动N个redis节点，
 *  将整个数据份布存储在这N个节点中，每个节点存储总数据的1/N。
 * ●Redis集群通过分区(partition) 来提供一定程度的可用性(availability)
 *  即使集群中有一部分节点失效或者无法进行通讯，集群也可以继续处理命令请求。
 *
 * ●redis的哨兵模式基本已经可以实现高可用，读写分离 ，
 * 但是在这种模式下每台redis服务器都存储相同的数据，很浪费内存，
 * 所以在redis3.0上加入了cluster模式，实现的redis的分布式存储，
 * 也就是说每台redis节点上存储不同的内容。
 *
 * ●Redis-Cluster采用无中心结构,它的特点如下：
 *      1.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
 *      2.节点的fail是通过集群中超过半数的节点检测失效时才生效。
 *      3.客户端与redis节点直连,不需要中间代理层.客户端不需要连接集群所有节点,
 *          连接集群中任何一个可用节点即可。
 *
 *
 * 为了保证高可用，redis-cluster集群引入了主从模式，
 * 一个主节点对应一个或者多个从节点，当主节点宕机的时候，
 * 就会启用从节点。当其它主节点ping一个主节点A时，
 * 如果半数以上的主节点与A通信超时，那么认为主节点A宕机了。
 * 如果主节点A和它的从节点A1都宕机了，那么该集群就无法再提供服务了。
 *
 */
public class C1_集群概念 {

}
